//
//  UIImage+TaoJExtension.h
//  百思不得姐2
//
//  Created by 陶建 on 15/8/8.
//  Copyright (c) 2015年 taoJ. All rights reserved.
//

#import <UIKit/UIKit.h>

typedef NS_ENUM(NSInteger, UIImageSavaFormat) {
    UIImageSavaFormatPNG,
    UIImageSavaFormatJPEG
};

@interface UIImage (TExtension)

/**
 *  根据传过来的图片名，把图片裁剪成圆形头像
 *
 *  @param imageName    图片名
 *  @param borderWidth  边框半径
 *  @param borderColor  边框颜色
 *
 *  @return 圆形图片
 */
+ (instancetype)conversionCircleImageWithImageName:(NSString *)imageName  borderWidth:(NSInteger)borderWidth borderColor:(UIColor *)borderColor;

/**
 *  图片裁剪成圆形头像(用上下文方式)
 *
 *  @param borderWidth 边框半径
 *  @param borderColor 边框颜色
 *
 *  @return 圆形图片
 */
- (instancetype)conversionCircleImageContextWithBorderWidth:(NSInteger)borderWidth borderColor:(UIColor *)borderColor;

/**
 *  图片裁剪成圆形头像(用上下文方式)
 *
 *  @param borderWidth 边框半径
 *  @param borderColor 边框颜色
 *
 *  @return 圆形图片
 */
- (instancetype)conversionCircleImageBezierWithBorderWidth:(NSInteger)borderWidth borderColor:(UIColor *)borderColor;

/****************************拉伸图片***********************************/
#pragma mark - 以图片中心位置1像素拉伸图片
/**
 *  拉伸图片
 *
 *  @param imageName 要拉伸的图片名
 *
 *  @return 拉伸过后的图片
 */
+ (instancetype)imageStretchWithImageName:(NSString *)imageName;

#pragma mark 以图片中心位置1像素拉伸图片
/**
 *  拉伸图片
 *
 *  @return 拉伸过后的图片
 */
- (instancetype)stretchImageWithLocationCenterPoint;

/************************ 图片截取、裁剪 ************************/
#pragma mark - 从大图上截取指定位置图片
/**
 *  从大图上截取指定位置图片
 *
 *  @param bigImage 原始图片
 *  @param rect     截取的大小位置
 *
 *  @return 返回一个从原图上截取的新图片
 */
+ (instancetype)imageTailorWithBigImage:(UIImage *)bigImage rect:(CGRect)rect;

#pragma mark 平均分割大图片成num个
/**
 *  按图片大小平均截取
 *
 *  @param bigImage  截取的原始图片
 *  @param num 截取的个数
 *
 *  @return 返回一个装在全部小图片的数组
 */
+ (NSArray *)imageTailorWithBigImage:(UIImage *)bigImage tailorNum:(NSInteger)num;

/************************ 图片保存 ************************/
#pragma mark - 将控件保存成图片
/**
 *  把控件上的内容保存成一个图片
 *
 *  @param view 保存的控件
 *
 *  @return 图片
 */
+ (instancetype)imageWithSaveView:(UIView *)view;

/************************ 图片水印 ************************/
#pragma mark - 图片水印
/**
 *  为图片添加文本水印
 *
 *  @param name  图片名
 *  @param irect 图片位置大小
 *  @param text  文本
 *  @param trect 文本位置大小
 *  @param dict  文本样式
 *
 *  @return 水印图片
 */
+ (instancetype)imageWaterWithImageName:(NSString *)name imageRect:(CGRect)irect text:(NSString *)text textRect:(CGRect)trect textAttribute:(NSDictionary *)dict;

@end
